// #ifdef APP-PLUS || H5
// ----------------------------------------------------
// App 和 H5 环境下的完整版
// ----------------------------------------------------


// 引入 uni-app SDK
import EasemobSDK from 'easemob-websdk/uniApp/Easemob-chat';
// 引入config.js
import {APP_KEY,REST_URL,SOCKET_URL} from './config.js';
// 初始化IM实例
/**
 * @param {boolean} useOwnUploadFun - 设置为 true 表示您将自己处理附件上传。
 * 这样，当你创建图片、语音等附件消息时，SDK将不会尝试调用其内置的上传流程，
 * 而是期望你直接提供一个已经可以访问的网络URL。
 */
const EMClient = new EasemobSDK.connection({
	appKey: APP_KEY,
	url: SOCKET_URL,
	apiUrl: REST_URL,
	isMultiLoginSessions: false, // 是否允许多设备登录
	https: true,                 // 是否使用 HTTPS
	isAutoLogin: true,           // 是否自动登录 (SDK 内部处理，可能需要你先成功登录一次)
	heartBeatWait: 30000,        // 心跳间隔ms
	autoReconnectNumMax: 2,      // 自动重连次数
	delivery: true,              // 是否发送已送达回执
	useOwnUploadFun: true
});
// 可以在这里预先添加一些基础的日志打印监听器，方便调试
EMClient.addEventHandler("EaseIM_Connection_Handler_Global", {
    onConnected: () => {
        console.log("[EaseIM/index.js] SDK onConnected: 连接成功");
    },
    onDisconnected: (reason) => {
        console.log("[EaseIM/index.js] SDK onDisconnected: 连接断开", reason);
    },
    onError: (error) => {
        console.error("[EaseIM/index.js] SDK onError: ", error);
    }
});
export {EMClient,EasemobSDK}


// #endif

// #ifndef APP-PLUS || H5
// ----------------------------------------------------
// 小程序等其他环境下的空壳
// ----------------------------------------------------
// 导出一个 null 或一个空对象，确保 import 不会报错
export const EMClient = null;
export const EasemobSDK = {}; // 提供一个空对象，防止对 EasemobSDK.statusCode 等的访问报错

// #endif